import App from "./App";
import config from "./config.js";
// import {
// 	request
// } from './common/request.js'

import {
	http
} from "@/common/http.js";

import {
	http1
} from "@/common/http1.js";

// #ifndef VUE3
import Vue from "vue";

// main.js
import uView from "@/uni_modules/uview-ui";
Vue.use(uView);
import i18n from "@/i18n/index.js";
Vue.use(i18n);

// 过滤器
import  '@/common/filters.js'

// 调用setConfig方法，方法内部会进行对象属性深度合并，可以放心嵌套配置
// 需要在Vue.use(uView)之后执行
uni.$u.setConfig({
	// 修改$u.config对象的属性
	config: {
		// 修改默认单位为rpx，相当于执行 uni.$u.config.unit = 'rpx'
		unit: "rpx",
	},
	// 修改$u.props对象的属性
	props: {
		// 修改radio组件的size参数的默认值，相当于执行 uni.$u.props.radio.size = 30
		radio: {
			size: 15,
		},
		// 其他组件属性配置
		// ......
	},
});
import $util from "@/common/util.js";
Vue.prototype.$util = $util;
// Vue.prototype.$request = request;
Vue.prototype.$http = http;
Vue.prototype.$http1 = http1;
Vue.prototype.switchTabLang = switchTabLang;
Vue.config.productionTip = false;
App.mpType = "app";

try {
	function isPromise(obj) {
		return (
			!!obj &&
			(typeof obj === "object" || typeof obj === "function") &&
			typeof obj.then === "function"
		);
	}

	// 统一 vue2 API Promise 化返回格式与 vue3 保持一致
	uni.addInterceptor({
		returnValue(res) {
			if (!isPromise(res)) {
				return res;
			}
			return new Promise((resolve, reject) => {
				res.then((res) => {
					console.log("res", res)
					if (res[0]) {
						reject(res[0]);
					} else {
						resolve(res[1]);
					}
				});
			});
		},
	});
} catch (error) {}

const app = new Vue({
	i18n,
	...App,
});
app.$mount();
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from "vue";
export function createApp() {
	const app = createSSRApp(App);
	return {

		app,
	};
}
// #endif

// 修改tabbar语言
function switchTabLang() {
	uni.setTabBarItem({
		index: 0,
		text: this.$t('首页'),
		success: (res) => {
			console.log('res', res)
		},
		fail: (err) => {
			console.log('err', err)
		}
	})
	uni.setTabBarItem({
		index: 1,
		text: this.$t('现货'),
	})
	uni.setTabBarItem({
		index: 2,
		text: this.$t('排行榜'),
	})
	uni.setTabBarItem({
		index: 3,
		text: this.$t('我的'),
	})
}
